package cn.wolfcode.trip.base.mapper;

import cn.wolfcode.trip.base.domain.Question;
import cn.wolfcode.trip.base.query.QuestionQueryObject;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 问题mapper
 */
public interface QuestionMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Question question);

    Question selectByPrimaryKey(Long id);

    List<Question> selectAll();

    /**
     * 提问列表
     * @param qo
     * @return
     */
    List<Question> selectForList(QuestionQueryObject qo);

    /**
     * 更新浏览量
     * @param question
     */
    void updatePageViews(Question question);

    /**
     * 查询用户是否点了赞
     * @param userId 用户id
     * @param questionId 问题id
     * @return
     */
    int selectLikeRelation(@Param("userId") Long userId, @Param("questionId") Long questionId);

    /**
     * 保存点赞关系
     * @param userId
     * @param questionId
     */
    void saveLikeRelation(@Param("userId") Long userId, @Param("questionId") Long questionId);

    /**
     * 删除点赞关系
     * @param userId
     * @param questionId
     */
    void deleteLikeRelation(@Param("userId") Long userId, @Param("questionId") Long questionId);

    /**
     * 获取点赞数
     * @param id
     * @return
     */
    int getLikeNum(Long id);

    /**
     * 更新点赞数
     * @param questionId
     * @param likeNum
     */
    void updateLikeNum(@Param("questionId") Long questionId, @Param("likeNum") int likeNum);
}